import pygame
from pygame.sprite import Sprite


class Bullet(Sprite):
    """子弹类 继承自Sprite"""

    """管理飞机所发射子弹的类"""

    def __init__(self, gm):
        """在飞机当前位置创建一个子弹对象"""
        super().__init__()
        self.screen = gm.screen
        self.settings = gm.settings

        # 在（0，0）处创建一个子弹，再设置正确的位置
        self.image = pygame.image.load("./images/bullet.png")
        self.rect = self.image.get_rect()
        self.rect.midtop = gm.my_plane.rect.midtop
        # 存储用浮点数表示的子弹位置
        self.y = float(self.rect.y)

    def update(self):
        """向上移动的子弹"""
        # 更新子弹的准确位置
        self.y -= self.settings.bullet_speed
        # 更新标识子弹的rect的位置
        self.rect.y = self.y

    def draw_bullet(self):
        """在屏幕上绘制子弹"""
        self.screen.blit(self.image, self.rect)
